<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 判断年月日是否合法
        //   分析：年，月，日期判断
        //      年：1000-3000之间，必须是整数    y>=1000 && y<=3000   y%1===0
        //      月：1-12之间，必须是整数
        //      日期：看月份，2月的时候还得看平润年

        //   年输入正确，才判断月份，月份输入正确，才判断日期    ---   嵌套的关系



        // 1 输入年
        var y = prompt('年') ;
        // 判断年：1000-3000之间，必须是整数
        if(y >= 1000 && y <= 3000 && y % 1 === 0) {
            // 2 年输入正确才输入月
            var m = prompt('月');
            //  判断月  1-12之间的整数
            if(m >= 1 && m <= 12 && m % 1 === 0) {
                // alert('ok');
                // 3 年月都正确，输入日期
                var d = prompt('天数') ;
                //   判断天数  1-？的整数

                //     天数跟月份有关系   
                //          1 3 5 7 8 10  12     ？=31
                //          4 6 9 11             ？=30
                //          2
                //             闰年               ？=29
                //             平年               ？=28

                // 问号表示的是最大的天数，声明变量
                // var maxDay ;
                // if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
                //     maxDay = 31 ;
                // }
                // else if(m == 4 || m == 6 || m == 9 || m == 11) {
                //     maxDay = 30 ;
                // }
                // else if(m == 2) {
                //     // 判断闰年
                //     if(y % 4 === 0 && y % 100 !== 0 || y % 400 === 0) {
                //         maxDay = 29 ;
                //     } 
                //     else {
                //         maxDay = 28;
                //     }
                // }


                var maxDay = 31 ;
                if(m == 4 || m == 6 || m == 9 || m == 11) {
                    maxDay = 30 ;
                }
                else if(m == 2) {
                    maxDay = 28 ;
                    // 判断闰年
                    if(y % 4 === 0 && y % 100 !== 0 || y % 400 === 0) {
                        maxDay = 29 ;
                    } 
                }



                if(d >= 1 && d <= maxDay && d %1 === 0) {
                    alert('ok');
                }
                else {
                    alert('日期不合法');
                }
            } 
            else {
                alert('月份不对');
            }
        }
        else {
            alert('年份不对');
        }



    </script>
    
</body>
</html>